package com.zdw.oauth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zdw.oauth.dto.UserAddDto;
import com.zdw.oauth.dto.UserSelectDto;
import com.zdw.oauth.dto.UserUpdDto;
import com.zdw.oauth.entity.UserEntity;

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author 卓德文
 * @since 2023-01-04
 */
public interface UserService {

    /**
     * 新增用户
     *
     * @param dto
     * @return
     */
    boolean add(UserAddDto dto);

    /**
     * 编辑用户
     *
     * @param dto
     * @return
     */
    boolean update(UserUpdDto dto);

    /**
     * 删除用户
     *
     * @param id
     * @return
     */
    boolean delete(int id);

    /**
     * 查询用户信息
     *
     * @param id
     * @return
     */
    UserEntity select(int id);

    /**
     * 分页查询用户列表
     *
     * @param dto
     * @return
     */
    IPage<UserEntity> page(UserSelectDto dto);

    /**
     * 根据电话号码查询用户信息(用于手机登陆)
     *
     * @return
     */
    UserEntity selectByPhone(String phone);

    /**
     * 根据账号查询用户信息(用于账号登陆)
     *
     * @return
     */
    UserEntity selectByAccount(String account);

}
